包名 结绳.安卓.组件

类 可标记组件
    code private Object tag;

    属性写 标记(标记值: 对象)
        code this.tag = #标记值;
    结束 属性

    属性读 标记() : 对象
        code return this.tag;
    结束 属性
结束 类

@导入Java("android.content.Context")
@导入Java("android.view.View")
类 可视化组件 : 可标记组件
    @code
    protected View view;
    protected Context context;
    private boolean clickable;

    public #<可视化组件>(Context context) {
        this.context = context;
        this.view = onCreateView(context);
    }

    public View onCreateView(Context context) {
        View view = new View(context);
        return view;
    }

    public View getView() {
        return view;
    }
    @end

    属性写 支持单击(是否支持: 逻辑型)
        @code
        if (#是否支持) {
            this.clickable = true;
            view.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    #被单击();
                }
            }
        } else {
            this.clickable = false;
            view.setOnClickListener(null);
        }
        @end
    结束 属性

    属性写 对齐方式(方式 : 整数)
        code getView().setGravity(#方式);
    结束 属性

    属性读 支持单击() : 逻辑型
        code return this.clickable;
    结束 属性

    方法 取安卓环境() : 安卓环境
        code return context;
    结束 方法

    定义事件 被单击()

    定义事件 被长按() : 逻辑型
结束 类

@禁止创建对象
@导入Java("android.view.ViewGroup")
@导入Java("android.content.Context")
@前缀代码("abstract")
类 布局组件 : 可视化组件
    @code
    private final java.util.List<#<可视化组件>> children;

    public #<布局组件>(Context context) {
        super(context);
        this.children = new java.util.ArrayList<>();
    }

    public abstract ViewGroup onCreateView(Context context);
    public abstract ViewGroup getView();
    @end

    @输出名("addComponent")
    方法 添加组件(组件: 可视化组件)
        @code
        children.add(component);
        getView().addView(component.getView());
        @end
    结束 方法

    方法 取子组件(索引 : 整数) : 可视化组件
        code return children.get(#索引);
    结束 方法

    方法 取子组件数量() : 整数
        code return children.size();
    结束 方法
结束 类


类 线性布局 : 布局组件

结束 类


类 文本框 : 可视化组件
    @code
    public #<文本框>(android.content.Context context) {
        super(context);
    }

    @Override
    public android.widget.TextView onCreateView(android.content.Context context) {
        android.widget.TextView view = new android.widget.TextView(context);
        return view;
    }

    @Override
    public android.widget.TextView getView() {
        return (android.widget.TextView) view;
    }
    @end

    属性写 内容(值: 文本)
        code getView().setText(#值);
    结束 属性

    属性读 内容() : 文本
        code return getView().getText().toString();
    结束 属性
结束 类

//=============按钮
类 按钮 : 文本框
    @code
    public #<按钮>(Context context) {
        super(context);
        #支持单击(true);
    }

    @Override
    public android.widget.Button onCreateView(android.content.Context context) {
        android.widget.Button view = new android.widget.Button(context);
        return view;
    }

    @Override
    public android.widget.Button getView() {
        return (android.widget.Button) view;
    }
    @end
结束 类